package com.yesjpt.util;

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Files;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.activation.MimetypesFileTypeMap;

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.impl.client.DefaultHttpClient;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.http.ResponseEntity;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;
/*
import java.io.File;
import java.io.FileInputStream;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.mock.web.MockMultipartFile;
import org.apache.http.entity.ContentType;
*/
/**
 * 文件工具类
 * 
 * @author
 *
 */
@SuppressWarnings("deprecation")
public class FileUtil {
	public static void main(String[] args) throws IOException {
		/*
		 * String path = "D:\\\\aaaSsss"; System.out.println(path + "的文件名是：" +
		 * parseOriginName(path));
		 */
		String imgFile = "C:/tmp/hello.jpg";// 待处理的图片
		String imgbese = file2Str(imgFile).getString("out");
		System.out.println(imgbese.length());
		System.out.println(imgbese);
		String filePath = "C:/tmp/hello_3.jpg";// 新生成的图片
		String s = "/9j/4AAQSkZJRgABAQEASABIAAD/4TIdaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA0LjEtYzAzNCA0Ni4yNzI5NzYsIFNhdCBKYW4gMjcgMjAwNyAyMjozNzozNyAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPHhhcDpDcmVhdG9yVG9vbD5BZG9iZSBGaXJld29ya3MgQ1MzPC94YXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4YXA6Q3JlYXRlRGF0ZT4yMDE4LTA5LTA0VDA4OjA3OjU3WjwveGFwOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4YXA6TW9kaWZ5RGF0ZT4yMDE4LTA5LTA0VDA4OjA4OjI3WjwveGFwOk1vZGlmeURhdGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL2pwZWc8L2RjOmZvcm1hdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz7/2wBDAAoGBgcHBwoICAoOCggKDhENCgoNERMPDxAPDxMWERISEhIRFhMWFxgXFhMdHR8fHR0pKCgoKSsrKysrKysrKyv/2wBDAQsKCg8ODxcRERcZFBIUGR8dHR0dHyMfHx8fHyMmIiAgICAiJiQlIyMjJSQoKCYmKCgrKysrKysrKysrKysrKyv/wAARCAJuAtADAREAAhEBAxEB/8QAGwABAAMBAQEBAAAAAAAAAAAAAAIDBAEFBgf/xABJEAACAQIEAwUFBAcHAwIGAwAAAQIDEQQSITEFQVEGEyIyYUJxgZGhFCNSsTNicoLB0fAHFSSSssLhFkNTNPE1RHOTotJjg7P/xAAZAQEBAQEBAQAAAAAAAAAAAAAAAQIDBAX/xAAmEQEBAQEAAgICAgICAwAAAAAAARECAxITMSEyBEEiMxRRQkNS/9oADAMBAAIRAxEAPwD9lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpU5y/wC40BW8G/8AyyA7Twahu7gWZakfK/gwCq28ysBNNPVbAAOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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";
		System.out.println(str2File(s, filePath));
		/*
		File file = new File("C:/tmp/hello.jpg");
		FileInputStream fileInputStream = new FileInputStream(file);
		MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(), ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
		try {
			FilePostByRestTemplate("http://localhost:8081/file/saveFile", file);
		} catch (Exception e) {
			e.printStackTrace();
		}
		*/
	}

	
	
	
	public static void FilePostByRestTemplate2(String url, File file) throws  Exception {
        RestTemplate restTemplate = new RestTemplate();
//        Resource resouse =  file.getResource();
        ByteArrayResource resource = null;
        String filename1 = "更改后的文件名.txt";
        try (
        	 ByteArrayOutputStream bos = new ByteArrayOutputStream();
             InputStream is = new FileInputStream(file);
             )
        {
            byte[] buffer = new byte[1024];
            while(is.read(buffer) > 0){
                bos.write(buffer);
            }
            resource = new ByteArrayResource(bos.toByteArray()){
                @Override
                public String getFilename() throws IllegalStateException {
                    return "c://tmp//" + filename1;
                }
            };
        }catch (Exception e){

        }

        MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
        param.add("otherParam", "1");
        param.add("upload", resource);
        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, param, String.class);
        System.out.println("**************:" + responseEntity.getBody());
    }
	
	//暂时没弄成功
	public static void FilePostByRestTemplate(String url, MultipartFile file) throws  Exception {
        RestTemplate restTemplate = new RestTemplate();
        Resource resouse =  file.getResource();
        MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
        param.add("otherParam", "1");
        param.add("upload", resouse);
        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, param, String.class);
        System.out.println("**************:" + responseEntity.getBody());
    }
	
	//暂时没走通
	public static void FilePostByRestTemplate(String url, File file) throws  Exception {
        RestTemplate restTemplate = new RestTemplate();
        FileSystemResource resource = new FileSystemResource(file);
        MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
        param.add("otherParam", "1");
        param.add("upload", resource);
        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, param, String.class);
        System.out.println("**************:" + responseEntity.getBody());
    }
	
	// 字符串转文件名
	public static String fixName(String s) {
		if (s == null)
			return "";
		return s.replace("/", "").replace("\\", "").replace("|", "").replace("*", "").replace("?", "").replace(":", "").replace("<", "").replace(">", "").replaceAll("[\\pP\\pS\\pZ]", "");
	}

	// 解析原始文件名C:/app/user/oracle/admin/dpdump/
	public static String parseOriginName(String path) {
		if (path == null || path.length() == 0)
			return "";
		String name = getName(path);
		String ext = getExt(path);
		name = fixName(name);
		return ext.length() == 0 ? name : name + "." + ext;
	}

	public static String save(MultipartFile file, String path) {
		try {
			File target = new File(path);
			// 级联创建目录
			if (!target.getParentFile().exists()) {
				target.getParentFile().mkdirs();
			}
			// 保存文件
			file.transferTo(target);
			return path;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static boolean deleteFile(String path) {
		File file = new File(path);
		if (file.exists()) {
			boolean flag = file.delete();

			if (flag) {
				File[] files = file.getParentFile().listFiles();
				if (files == null || files.length == 0) {
					file.getParentFile().delete();
				}
			}

			return flag;
		}

		return false;
	}

	public static String fileMd5(InputStream inputStream) {
		try {
			return DigestUtils.md5Hex(inputStream);
		} catch (IOException e) {
			e.printStackTrace();
		}

		return null;
	}

	// 取得相对路径
	public static String getPath() {
		SimpleDateFormat df = new SimpleDateFormat("/yyyy/MM/dd/HHmmss/");
		return df.format(new Date());
	}

	/**
	 * 将文本写入文件
	 * 
	 * @param value
	 * @param path
	 */
	public static void saveTextFile(String value, String path) {
		FileWriter writer = null;
		try {
			File file = new File(path);
			if (!file.getParentFile().exists()) {
				file.getParentFile().mkdirs();
			}

			writer = new FileWriter(file);
			writer.write(value);
			writer.flush();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (writer != null) {
					writer.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	public static String getText(String path) {
		File file = new File(path);
		if (!file.exists()) {
			return null;
		}

		try {
			return getText(new FileInputStream(file));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}

		return null;
	}

	public static String getExt(String fileName) {
		if (fileName == null || fileName.length() == 0)
			return "";
		int lastDotIndex = fileName.lastIndexOf(".");
		if (lastDotIndex > 0) {
			return fileName.substring(lastDotIndex + 1).toLowerCase();
		}
		return "";
	}

	public static String getDir(String filePath) {
		if (filePath == null)
			return "";
		return filePath.substring(0, filePath.lastIndexOf(".")).replace(getName(filePath), "");
	}

	public static String getContentType(String path) {
		// 利用nio提供的类判断文件ContentType
		String content_type = null;
		try {
			content_type = Files.probeContentType(new File(path).toPath());
		} catch (IOException e) {
			L.e("Read File ContentType Error");
		}
		// 若失败则调用另一个方法进行判断
		if (content_type == null) {
			content_type = new MimetypesFileTypeMap().getContentType(new File(path));
		}
		return content_type;
	}

	// 取得文件扩展名
	public static String getName(String fileName) {
		if (fileName == null || fileName.length() == 0)
			return "";
		fileName = fileName.replace("\\", "/");
		if (fileName.indexOf(".") < 0)
			return fileName.substring(fileName.lastIndexOf("/") + 1);
		return fileName.substring(fileName.lastIndexOf("/") + 1, fileName.lastIndexOf(".")).replace(" ", "");
	}

	public static String getText(InputStream inputStream) {
		InputStreamReader isr = null;
		BufferedReader bufferedReader = null;
		try {
			isr = new InputStreamReader(inputStream, "utf-8");
			bufferedReader = new BufferedReader(isr);
			StringBuilder builder = new StringBuilder();
			String string;
			while ((string = bufferedReader.readLine()) != null) {
				string = string + "\n";
				builder.append(string);
			}

			return builder.toString();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (bufferedReader != null) {
				try {
					bufferedReader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (isr != null) {
				try {
					isr.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

		return null;
	}

	public static boolean md(String dir) {
		File file = new File(dir);
		if (file.mkdirs()) {
			// logger.info(d + "创建成功！");
			return true;
		} else {
			// logger.info(dir + "创建失败，目录已存在！");
			return false;
		}
	}

	// 删除目录及子目录，实际在用时，加入语句：
	// Common.rd(new File(fileName));//fileName是文件或目录名，路径要用反斜杠，如C:/fName
	// 注意一下目录的大小写
	public static void rd(File path) {
		// L.i("要删除的文件或目录是:" + path.toString());
		if (!path.exists()) {// 文件或目录不存在
			L.i("文件或目录不存在");
			return;
		}
		if (path.isFile()) {// 仅仅是一个文件, 直接删除后返回
			path.delete();
			return;
		}
		File[] files = path.listFiles();
		for (int i = 0; i < files.length; i++) {// 递归删除该路径下的所有"东西", 包括文件与目录
			rd(files[i]);
		}
		path.delete();// 最后删除该路径本身
		return;
	}

	// 删除文件
	public static void removeFile(String fileName) {
		rd(new File(fileName));
	}

	public static void clearDir(String path) {
		rd(new File(path));
		md(path);
		return;
	}

	// 列出目录下的文件, dir 为物理路径
	public static List<String> listDirFiles(String dir) {
		md(dir);
		List<String> list = new ArrayList<String>();
		File[] files = (new File(dir)).listFiles();
		for (int i = 0; i < files.length; i++) {
			if (files[i].isFile()) {
				list.add(files[i].getName());
			}
		}
		return list;
	}

	// 递归列出某个目录下面的文件
	static String list(File f, int lv) {
		String s = "";
		File[] childs = f.listFiles();
		for (int i = 0; i < childs.length; i++) {
			for (int j = 0; j < lv; j++)
				System.out.print(" ┃");
			if (i == childs.length - 1)
				System.out.println(" ┗" + childs[i].getName());
			else
				System.out.println(" ┣" + childs[i].getName());
			if (childs[i].isDirectory())
				s += list(childs[i], lv + 1);
		}
		return s;
	}

	/**
	 * 将文件转换成Base64编码
	 * 
	 * @param path 待处理文件
	 * @return
	 */
	public static JSONObject file2Str(String path) {
		L.info(new Throwable().getStackTrace()[0]);
		if (path == null || path.length() == 0) {
			path = "C:/tmp/hello.jpg";
		}
		JSONObject o = JsonUtil.succ("转换操作成功！");
		// 将图片文件转化为字节数组字符串，并对其进行Base64编码处理
		InputStream in = null;
		byte[] data = null;
		// 读取图片字节数组
		try {
			in = new FileInputStream(path);
			data = new byte[in.available()];
			in.read(data);
			in.close();
		} catch (IOException e) {
			o = JsonUtil.fail("转换操作异常：", e);
			e.printStackTrace();
		}
		o.put("data", new String(Base64.encodeBase64(data)));
		return o;
	}

	/**
	 * 对字节数组字符串进行Base64解码并生成文件
	 * 
	 * @param s        文件数据
	 * @param filePath 保存文件全路径地址
	 * @return
	 */
	public static JSONObject str2File(String s, String filePath) {
		JSONObject o = JsonUtil.succ("转换成文件成功");
		o.put("out", filePath);
		if (s == null) {
			return JsonUtil.fail("转换操作失败", "文件为空");
		}
		try {
			md(getDir(filePath));
			// Base64解码
			byte[] b = Base64.decodeBase64(s);
			for (int i = 0; i < b.length; ++i) {
				if (b[i] < 0) {// 调整异常数据
					b[i] += 256;
				}
			}
			// 生成jpeg图片
			OutputStream out = new FileOutputStream(filePath);
			out.write(b);
			out.flush();
			out.close();
		} catch (Exception e) {
			o = JsonUtil.fail("message", "转换操作异常：" + e);
		}
		L.i(o);
		return o;
	}

	@SuppressWarnings({ "resource" })
	public static int upload(String strURL, File[] allFile) {

		int status = 200;

		for (int i = 0; i < allFile.length; ++i) {

			String localFile = allFile[i].getAbsolutePath();

			if (!(allFile[i].exists())) {

				continue;

			}

			long startPos = 0L;

			HttpClient headclient = new DefaultHttpClient();

			HttpHead httphead = new HttpHead(strURL);

			try {

				httphead.addHeader("Content-Type", "application/octet-stream");

			} catch (Exception e) {

				e.printStackTrace();

			} finally {

				headclient.getConnectionManager().shutdown();

			}

			HttpURLConnection conn = null;

			try {

				conn = (HttpURLConnection) new URL(strURL).openConnection();

				RandomAccessFile fis = new RandomAccessFile(new File(localFile), "r");

				if (startPos < fis.length()) {

					conn.setRequestMethod("PUT");

					conn.setDoOutput(true);

					conn.setDoInput(true);

					conn.setRequestProperty("Content-Type", "application/octet-stream");

					conn.setRequestProperty("File-Name", allFile[i].getName());

					OutputStream os = conn.getOutputStream();

					int rn = 0;

					byte[] buf = new byte[4096];

					while ((rn = fis.read(buf, 0, 4096)) > 0) {

						os.write(buf, 0, rn);

					}

					os.close();

					status = conn.getResponseCode();

				}

				fis.close();

			} catch (MalformedURLException e) {

				e.printStackTrace();

			} catch (IOException e) {

				try {

					conn.getResponseCode();

				} catch (IOException e1) {

					e1.printStackTrace();

				}

				e.printStackTrace();

			}

		}

		return status;

	}

}
